package com.ck.ips.service.file;

import com.ck.common.model.OperationResult;
import com.ck.ips.model.vo.FileGroupVO;

import java.util.List;

/**
 * @description: fileGroupService接口
 * @author: zhanglei
 * @date: 2019/4/30 14:48
 */
public interface FileGroupService {

    /**
     * 获取文件分组的总数
     * @return
     */
    int getFileGroupTotal();

    /**
     * 检测文件分组名称是否已经存在
     * @param groupName 文件分组名称
     * @return
     */
    boolean checkGroupNameExist(String groupName);

    /**
     * 检测文件分组名称是否已经存在（排除自己）
     * @param fileGroupName 文件分组名称
     * @param fileGroupId 文件分组id
     * @return
     */
    boolean outSelfGroupNameExist(String fileGroupName,Long fileGroupId);

    /**
     * 添加文件分组
     * @param groupName 文件分组名称
     * @param loginUserId 登陆人id
     * @param nowTime 当前时间戳
     */
    OperationResult<Object> addFileGroup(String groupName, Long loginUserId, Long nowTime);

    /**
     * 根据文件分组id修改文件分组的名称
     * @param fileGroupId 文件分组id
     * @param fileGroupName 文件分组名称
     * @param loginUserId 登陆用户id
     * @param nowTime 当前时间戳
     */
    OperationResult<Object> editFileGroup(Long fileGroupId, String fileGroupName, Long loginUserId, Long nowTime);

    /**
     * 批量删除分组
     * @param loginUserId 登陆用户id
     * @param fileGroupIds 分组id，逗号分隔
     */
    OperationResult<Object> deletebyFileGroupIds(Long loginUserId, String fileGroupIds);

    /**
     * 获取非api类型的所有分组信息
     * @return
     */
    List<FileGroupVO> getNotApiFileGroup();

    /**
     * 根据文件类型补全文件分组中的数量
     * @param fileGroupVOList 文件分组列表
     * @param fileType 文件类型
     */
    void addFileGroupVOTotal(List<FileGroupVO> fileGroupVOList,String fileType);

    /**
     * 获取默认分组id
     */
    Long getDefaultGroupId();

}
